}
-#define TIMER_SLOP (50*1000) /* ns */ /* copy from timer.c */
extern u64 cycle_to_ns(u64 cyle);
cur_itc = now_itc(vtm);
if (time_before(val, cur_itc))
val = cur_itc;
- expires = NOW() + cycle_to_ns(val-cur_itc) + TIMER_SLOP;
+ expires = NOW() + cycle_to_ns(val-cur_itc);
vmx_vcpu_unpend_interrupt(vcpu, ITV_VECTOR(vitv));
set_timer(&vtm->vtm_timer, expires);
}else{
int sched_smt_power_savings = 0;
boolean_param("sched_smt_power_savings", sched_smt_power_savings);
-#define TIME_SLOP (s32)MICROSECS(50) /* allow time to slip a bit */
-
/* Various timer handlers. */
static void s_timer_fn(void *unused);
static void vcpu_periodic_timer_fn(void *data);
periodic_next_event = v->periodic_last_event + v->periodic_period;
- /* The timer subsystem may call us up to TIME_SLOP ahead of deadline. */
- if ( (now + TIME_SLOP) > periodic_next_event )
+ if ( now >= periodic_next_event )
{
send_timer_event(v);
v->periodic_last_event = now;